From 0a522533b09521b6259819f7287908ff6b1a8704 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Mon, 22 Oct 2001 22:17:21 +0000 Subject: [PATCH] add temporary code to dump btree contents on assertion failure described 2001-10-22 Havoc Pennington * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): add temporary code to dump btree contents on assertion failure described in #62656 * gtk/gtktextbtree.c (ensure_end_iter_segment): add some assertions that we're getting the right end iter segment * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): verify that we aren't on the end iterator after moving forward one segment - fixes return value in an obscure case. Also, some trivial code cleanup/rearranging. --- ChangeLog | 14 ++++++++++++++ ChangeLog.pre-2-0 | 14 ++++++++++++++ ChangeLog.pre-2-10 | 14 ++++++++++++++ ChangeLog.pre-2-2 | 14 ++++++++++++++ ChangeLog.pre-2-4 | 14 ++++++++++++++ ChangeLog.pre-2-6 | 14 ++++++++++++++ ChangeLog.pre-2-8 | 14 ++++++++++++++ gtk/gtktextbtree.c | 3 +++ gtk/gtktextiter.c | 13 ++++++------- 9 files changed, 107 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 13142024ef..01ee421a42 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2001-10-22 Havoc Pennington + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + add temporary code to dump btree contents on assertion failure + described in #62656 + + * gtk/gtktextbtree.c (ensure_end_iter_segment): add some + assertions that we're getting the right end iter segment + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + verify that we aren't on the end iterator after moving + forward one segment - fixes return value in an obscure case. + Also, some trivial code cleanup/rearranging. + 2001-10-22 Havoc Pennington * gtk/gtktextlayout.h: add a #error unless you define diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 13142024ef..01ee421a42 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,17 @@ +2001-10-22 Havoc Pennington + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + add temporary code to dump btree contents on assertion failure + described in #62656 + + * gtk/gtktextbtree.c (ensure_end_iter_segment): add some + assertions that we're getting the right end iter segment + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + verify that we aren't on the end iterator after moving + forward one segment - fixes return value in an obscure case. + Also, some trivial code cleanup/rearranging. + 2001-10-22 Havoc Pennington * gtk/gtktextlayout.h: add a #error unless you define diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 13142024ef..01ee421a42 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,17 @@ +2001-10-22 Havoc Pennington + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + add temporary code to dump btree contents on assertion failure + described in #62656 + + * gtk/gtktextbtree.c (ensure_end_iter_segment): add some + assertions that we're getting the right end iter segment + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + verify that we aren't on the end iterator after moving + forward one segment - fixes return value in an obscure case. + Also, some trivial code cleanup/rearranging. + 2001-10-22 Havoc Pennington * gtk/gtktextlayout.h: add a #error unless you define diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 13142024ef..01ee421a42 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,17 @@ +2001-10-22 Havoc Pennington + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + add temporary code to dump btree contents on assertion failure + described in #62656 + + * gtk/gtktextbtree.c (ensure_end_iter_segment): add some + assertions that we're getting the right end iter segment + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + verify that we aren't on the end iterator after moving + forward one segment - fixes return value in an obscure case. + Also, some trivial code cleanup/rearranging. + 2001-10-22 Havoc Pennington * gtk/gtktextlayout.h: add a #error unless you define diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 13142024ef..01ee421a42 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,17 @@ +2001-10-22 Havoc Pennington + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + add temporary code to dump btree contents on assertion failure + described in #62656 + + * gtk/gtktextbtree.c (ensure_end_iter_segment): add some + assertions that we're getting the right end iter segment + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + verify that we aren't on the end iterator after moving + forward one segment - fixes return value in an obscure case. + Also, some trivial code cleanup/rearranging. + 2001-10-22 Havoc Pennington * gtk/gtktextlayout.h: add a #error unless you define diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 13142024ef..01ee421a42 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,17 @@ +2001-10-22 Havoc Pennington + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + add temporary code to dump btree contents on assertion failure + described in #62656 + + * gtk/gtktextbtree.c (ensure_end_iter_segment): add some + assertions that we're getting the right end iter segment + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + verify that we aren't on the end iterator after moving + forward one segment - fixes return value in an obscure case. + Also, some trivial code cleanup/rearranging. + 2001-10-22 Havoc Pennington * gtk/gtktextlayout.h: add a #error unless you define diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 13142024ef..01ee421a42 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,17 @@ +2001-10-22 Havoc Pennington + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + add temporary code to dump btree contents on assertion failure + described in #62656 + + * gtk/gtktextbtree.c (ensure_end_iter_segment): add some + assertions that we're getting the right end iter segment + + * gtk/gtktextiter.c (_gtk_text_iter_forward_indexable_segment): + verify that we aren't on the end iterator after moving + forward one segment - fixes return value in an obscure case. + Also, some trivial code cleanup/rearranging. + 2001-10-22 Havoc Pennington * gtk/gtktextlayout.h: add a #error unless you define diff --git a/gtk/gtktextbtree.c b/gtk/gtktextbtree.c index a2a043be87..2f03b58079 100644 --- a/gtk/gtktextbtree.c +++ b/gtk/gtktextbtree.c @@ -3234,6 +3234,9 @@ ensure_end_iter_segment (GtkTextBTree *tree) tree->end_iter_segment_char_offset = last_with_chars->char_count - 1; tree->end_iter_segment_stamp = tree->segments_changed_stamp; + + g_assert (tree->end_iter_segment->type == >k_text_char_type); + g_assert (tree->end_iter_segment->body.chars[tree->end_iter_segment_byte_index] == '\n'); } } diff --git a/gtk/gtktextiter.c b/gtk/gtktextiter.c index 97fc4b4ad6..501b077fab 100644 --- a/gtk/gtktextiter.c +++ b/gtk/gtktextiter.c @@ -1976,7 +1976,7 @@ _gtk_text_iter_forward_indexable_segment (GtkTextIter *iter) check_invariants (iter); - return TRUE; + return !gtk_text_iter_is_end (iter); } else { @@ -1995,21 +1995,20 @@ _gtk_text_iter_forward_indexable_segment (GtkTextIter *iter) check_invariants (iter); - if (gtk_text_iter_is_end (iter)) - return FALSE; - else - return TRUE; + return !gtk_text_iter_is_end (iter); } else { /* End of buffer */ + + check_invariants (iter); g_assert (!_gtk_text_line_is_last (real->line, real->tree)); g_assert (_gtk_text_line_contains_end_iter (real->line, real->tree)); + if (!gtk_text_iter_is_end (iter)) + _gtk_text_btree_spew (_gtk_text_iter_get_btree (iter)); g_assert (gtk_text_iter_is_end (iter)); - check_invariants (iter); - return FALSE; } } -- 2.30.2